svg{
    border: 1px solid #ddd;
    border-radius: 5px;
    overflow: visible;
};
body{
    color: #555;
}
*{
    outline: none !important;
}
path{
    stroke-width:1px;
    fill:transparent;
}
.dot-circle{
    cursor: grab;
}
circle{
    fill: gray;
}
.dot-path{
    stroke:gray;
}
.curve-path{
    stroke: red;
}
.dot-g{
    cursor: grab;
}
.ball-container{
    display: flex;
    justify-content: center;
    height: 20px;
    align-items: center;
    width: 500px;
    margin: 0px auto;
    margin-bottom: 10px;
    position: relative;
    flex-wrap: wrap;
}
.ball-move-bg{
    height: 2px;
    background: #ccc;
    width: 100%;
}
.ball,.ball-shadow{
    position: absolute;
    width: 20px;
    height: 20px;
    left: 0px;
    top: 0px;
    border-radius: 100%;
}
.ball-shadow{
    background: rgba(255,0,0,0.1);
}
.ball::before,.ball::after{
    content: "";
    background: red;    
    position: absolute;
    left: 0px;
    top: 0px;;
    width: 100%;;
    height: 100%;
    border-radius: 100%;
}
.curve-editor input{
    width: 4em;
    box-shadow: none;
    border: 1px solid #ccc;
}
input:focus{
    outline: none;
    border-color: #00BCD4;
}
li{
    padding-top: 10px;
    padding-bottom: 10px;
}
text{
    cursor: default;
    font-size: 10px;
    pointer-events: none;
}

ul{
    padding-left: 0px;
}
#curve-container{
    display: flex;
}
button{
    background: #eee;
    border: 1px solid #ccc;
    cursor: pointer;
    outline:  none !important;
    padding: 5px 8px;
    border-radius: 5px;
    color: inherit;;
}
.close-button{
    position: absolute;
    top: 0;
    right: -45px;
}
button:active{
    box-shadow: 0px 5px 5px 2px rgba(0, 0, 0, 0.29) inset;
}
#add-btn{
    width: 3em;
    height: 3em;
    margin-top: 120px;;
    border-radius: 100% !important;
}

.ball-container{
    transition: transform  0.5s;
}
.ball-container::before{
    content: "";
    display: block;
    width: 100%;
    height: 100px;
    top: calc(50% - 50px);
    position: absolute;
    border: 1px solid #ccc;
    pointer-events: none;
    /* opacity: 0; */
    transition: opacity 0.1s;
}
.ball-container.transform-3d{
    transform: perspective(500px) rotateX(45deg);
}
.ball-container.transform-3d .ball{
    transform: perspective(500px) ;;
}
.ball-container .ball{
    /* transform: perspective(500px)  ;; */
}
.ball-container.transform-3d::before{
    opacity: 1;
}